#pragma once
// MESSAGE UAV_ATTACK_CONTROL_TOFC PACKING

#define MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC 8


typedef struct __mavlink_uav_attack_control_tofc_t {
 uint64_t time_unix_usec; /*< [us] Timestamp (UNIX epoch time).*/
 float rcv1; /*<  Reserved field 1*/
 float rcv2; /*<  Reserved field 2*/
 float rcv3; /*<  Reserved field 3*/
 uint16_t frame_id; /*<  Frame ID (incremental counter for packet loss detection).*/
 int16_t pod_roll_cd; /*< [cdeg] Pod roll angle (deg*100, -18000~18000)*/
 int16_t pod_pitch_cd; /*< [cdeg] Pod pitch angle (deg*100, -18000~18000)*/
 int16_t pod_yaw_cd; /*< [cdeg] Pod yaw angle (deg*100, -18000~18000)*/
 int16_t pod_rollrate_cd; /*< [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)*/
 int16_t pod_pitchrate_cd; /*< [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)*/
 int16_t pod_yawrate_cd; /*< [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)*/
 int16_t image_pix_x; /*< [px] Image horizontal pixel offset (center=0,0)*/
 int16_t image_pix_y; /*< [px] Image vertical pixel offset (center=0,0)*/
 int16_t image_ang_x; /*< [cdeg] Image horizontal angle offset (deg*100, -18000~18000)*/
 int16_t image_ang_y; /*< [cdeg] Image vertical angle offset (deg*100, -18000~18000)*/
 uint8_t status1; /*<  Algorithm status 1*/
 uint8_t status2; /*<  Algorithm status 2*/
 uint8_t status3; /*<  Algorithm status 3*/
} mavlink_uav_attack_control_tofc_t;

#define MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN 45
#define MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN 45
#define MAVLINK_MSG_ID_8_LEN 45
#define MAVLINK_MSG_ID_8_MIN_LEN 45

#define MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC 101
#define MAVLINK_MSG_ID_8_CRC 101



#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_UAV_ATTACK_CONTROL_TOFC { \
    8, \
    "UAV_ATTACK_CONTROL_TOFC", \
    18, \
    {  { "time_unix_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_uav_attack_control_tofc_t, time_unix_usec) }, \
         { "frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_uav_attack_control_tofc_t, frame_id) }, \
         { "status1", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_uav_attack_control_tofc_t, status1) }, \
         { "status2", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_uav_attack_control_tofc_t, status2) }, \
         { "status3", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_uav_attack_control_tofc_t, status3) }, \
         { "pod_roll_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 22, offsetof(mavlink_uav_attack_control_tofc_t, pod_roll_cd) }, \
         { "pod_pitch_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_uav_attack_control_tofc_t, pod_pitch_cd) }, \
         { "pod_yaw_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 26, offsetof(mavlink_uav_attack_control_tofc_t, pod_yaw_cd) }, \
         { "pod_rollrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 28, offsetof(mavlink_uav_attack_control_tofc_t, pod_rollrate_cd) }, \
         { "pod_pitchrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 30, offsetof(mavlink_uav_attack_control_tofc_t, pod_pitchrate_cd) }, \
         { "pod_yawrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 32, offsetof(mavlink_uav_attack_control_tofc_t, pod_yawrate_cd) }, \
         { "image_pix_x", NULL, MAVLINK_TYPE_INT16_T, 0, 34, offsetof(mavlink_uav_attack_control_tofc_t, image_pix_x) }, \
         { "image_pix_y", NULL, MAVLINK_TYPE_INT16_T, 0, 36, offsetof(mavlink_uav_attack_control_tofc_t, image_pix_y) }, \
         { "image_ang_x", NULL, MAVLINK_TYPE_INT16_T, 0, 38, offsetof(mavlink_uav_attack_control_tofc_t, image_ang_x) }, \
         { "image_ang_y", NULL, MAVLINK_TYPE_INT16_T, 0, 40, offsetof(mavlink_uav_attack_control_tofc_t, image_ang_y) }, \
         { "rcv1", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_uav_attack_control_tofc_t, rcv1) }, \
         { "rcv2", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_uav_attack_control_tofc_t, rcv2) }, \
         { "rcv3", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_uav_attack_control_tofc_t, rcv3) }, \
         } \
}
#else
#define MAVLINK_MESSAGE_INFO_UAV_ATTACK_CONTROL_TOFC { \
    "UAV_ATTACK_CONTROL_TOFC", \
    18, \
    {  { "time_unix_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_uav_attack_control_tofc_t, time_unix_usec) }, \
         { "frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_uav_attack_control_tofc_t, frame_id) }, \
         { "status1", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_uav_attack_control_tofc_t, status1) }, \
         { "status2", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_uav_attack_control_tofc_t, status2) }, \
         { "status3", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_uav_attack_control_tofc_t, status3) }, \
         { "pod_roll_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 22, offsetof(mavlink_uav_attack_control_tofc_t, pod_roll_cd) }, \
         { "pod_pitch_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_uav_attack_control_tofc_t, pod_pitch_cd) }, \
         { "pod_yaw_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 26, offsetof(mavlink_uav_attack_control_tofc_t, pod_yaw_cd) }, \
         { "pod_rollrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 28, offsetof(mavlink_uav_attack_control_tofc_t, pod_rollrate_cd) }, \
         { "pod_pitchrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 30, offsetof(mavlink_uav_attack_control_tofc_t, pod_pitchrate_cd) }, \
         { "pod_yawrate_cd", NULL, MAVLINK_TYPE_INT16_T, 0, 32, offsetof(mavlink_uav_attack_control_tofc_t, pod_yawrate_cd) }, \
         { "image_pix_x", NULL, MAVLINK_TYPE_INT16_T, 0, 34, offsetof(mavlink_uav_attack_control_tofc_t, image_pix_x) }, \
         { "image_pix_y", NULL, MAVLINK_TYPE_INT16_T, 0, 36, offsetof(mavlink_uav_attack_control_tofc_t, image_pix_y) }, \
         { "image_ang_x", NULL, MAVLINK_TYPE_INT16_T, 0, 38, offsetof(mavlink_uav_attack_control_tofc_t, image_ang_x) }, \
         { "image_ang_y", NULL, MAVLINK_TYPE_INT16_T, 0, 40, offsetof(mavlink_uav_attack_control_tofc_t, image_ang_y) }, \
         { "rcv1", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_uav_attack_control_tofc_t, rcv1) }, \
         { "rcv2", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_uav_attack_control_tofc_t, rcv2) }, \
         { "rcv3", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_uav_attack_control_tofc_t, rcv3) }, \
         } \
}
#endif

/**
 * @brief Pack a uav_attack_control_tofc message
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 *
 * @param time_unix_usec [us] Timestamp (UNIX epoch time).
 * @param frame_id  Frame ID (incremental counter for packet loss detection).
 * @param status1  Algorithm status 1
 * @param status2  Algorithm status 2
 * @param status3  Algorithm status 3
 * @param pod_roll_cd [cdeg] Pod roll angle (deg*100, -18000~18000)
 * @param pod_pitch_cd [cdeg] Pod pitch angle (deg*100, -18000~18000)
 * @param pod_yaw_cd [cdeg] Pod yaw angle (deg*100, -18000~18000)
 * @param pod_rollrate_cd [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)
 * @param pod_pitchrate_cd [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)
 * @param pod_yawrate_cd [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)
 * @param image_pix_x [px] Image horizontal pixel offset (center=0,0)
 * @param image_pix_y [px] Image vertical pixel offset (center=0,0)
 * @param image_ang_x [cdeg] Image horizontal angle offset (deg*100, -18000~18000)
 * @param image_ang_y [cdeg] Image vertical angle offset (deg*100, -18000~18000)
 * @param rcv1  Reserved field 1
 * @param rcv2  Reserved field 2
 * @param rcv3  Reserved field 3
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
                               uint64_t time_unix_usec, uint16_t frame_id, uint8_t status1, uint8_t status2, uint8_t status3, int16_t pod_roll_cd, int16_t pod_pitch_cd, int16_t pod_yaw_cd, int16_t pod_rollrate_cd, int16_t pod_pitchrate_cd, int16_t pod_yawrate_cd, int16_t image_pix_x, int16_t image_pix_y, int16_t image_ang_x, int16_t image_ang_y, float rcv1, float rcv2, float rcv3)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN];
    _mav_put_uint64_t(buf, 0, time_unix_usec);
    _mav_put_float(buf, 8, rcv1);
    _mav_put_float(buf, 12, rcv2);
    _mav_put_float(buf, 16, rcv3);
    _mav_put_uint16_t(buf, 20, frame_id);
    _mav_put_int16_t(buf, 22, pod_roll_cd);
    _mav_put_int16_t(buf, 24, pod_pitch_cd);
    _mav_put_int16_t(buf, 26, pod_yaw_cd);
    _mav_put_int16_t(buf, 28, pod_rollrate_cd);
    _mav_put_int16_t(buf, 30, pod_pitchrate_cd);
    _mav_put_int16_t(buf, 32, pod_yawrate_cd);
    _mav_put_int16_t(buf, 34, image_pix_x);
    _mav_put_int16_t(buf, 36, image_pix_y);
    _mav_put_int16_t(buf, 38, image_ang_x);
    _mav_put_int16_t(buf, 40, image_ang_y);
    _mav_put_uint8_t(buf, 42, status1);
    _mav_put_uint8_t(buf, 43, status2);
    _mav_put_uint8_t(buf, 44, status3);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#else
    mavlink_uav_attack_control_tofc_t packet;
    packet.time_unix_usec = time_unix_usec;
    packet.rcv1 = rcv1;
    packet.rcv2 = rcv2;
    packet.rcv3 = rcv3;
    packet.frame_id = frame_id;
    packet.pod_roll_cd = pod_roll_cd;
    packet.pod_pitch_cd = pod_pitch_cd;
    packet.pod_yaw_cd = pod_yaw_cd;
    packet.pod_rollrate_cd = pod_rollrate_cd;
    packet.pod_pitchrate_cd = pod_pitchrate_cd;
    packet.pod_yawrate_cd = pod_yawrate_cd;
    packet.image_pix_x = image_pix_x;
    packet.image_pix_y = image_pix_y;
    packet.image_ang_x = image_ang_x;
    packet.image_ang_y = image_ang_y;
    packet.status1 = status1;
    packet.status2 = status2;
    packet.status3 = status3;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC;
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
}

/**
 * @brief Pack a uav_attack_control_tofc message
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param status MAVLink status structure
 * @param msg The MAVLink message to compress the data into
 *
 * @param time_unix_usec [us] Timestamp (UNIX epoch time).
 * @param frame_id  Frame ID (incremental counter for packet loss detection).
 * @param status1  Algorithm status 1
 * @param status2  Algorithm status 2
 * @param status3  Algorithm status 3
 * @param pod_roll_cd [cdeg] Pod roll angle (deg*100, -18000~18000)
 * @param pod_pitch_cd [cdeg] Pod pitch angle (deg*100, -18000~18000)
 * @param pod_yaw_cd [cdeg] Pod yaw angle (deg*100, -18000~18000)
 * @param pod_rollrate_cd [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)
 * @param pod_pitchrate_cd [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)
 * @param pod_yawrate_cd [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)
 * @param image_pix_x [px] Image horizontal pixel offset (center=0,0)
 * @param image_pix_y [px] Image vertical pixel offset (center=0,0)
 * @param image_ang_x [cdeg] Image horizontal angle offset (deg*100, -18000~18000)
 * @param image_ang_y [cdeg] Image vertical angle offset (deg*100, -18000~18000)
 * @param rcv1  Reserved field 1
 * @param rcv2  Reserved field 2
 * @param rcv3  Reserved field 3
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
                               uint64_t time_unix_usec, uint16_t frame_id, uint8_t status1, uint8_t status2, uint8_t status3, int16_t pod_roll_cd, int16_t pod_pitch_cd, int16_t pod_yaw_cd, int16_t pod_rollrate_cd, int16_t pod_pitchrate_cd, int16_t pod_yawrate_cd, int16_t image_pix_x, int16_t image_pix_y, int16_t image_ang_x, int16_t image_ang_y, float rcv1, float rcv2, float rcv3)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN];
    _mav_put_uint64_t(buf, 0, time_unix_usec);
    _mav_put_float(buf, 8, rcv1);
    _mav_put_float(buf, 12, rcv2);
    _mav_put_float(buf, 16, rcv3);
    _mav_put_uint16_t(buf, 20, frame_id);
    _mav_put_int16_t(buf, 22, pod_roll_cd);
    _mav_put_int16_t(buf, 24, pod_pitch_cd);
    _mav_put_int16_t(buf, 26, pod_yaw_cd);
    _mav_put_int16_t(buf, 28, pod_rollrate_cd);
    _mav_put_int16_t(buf, 30, pod_pitchrate_cd);
    _mav_put_int16_t(buf, 32, pod_yawrate_cd);
    _mav_put_int16_t(buf, 34, image_pix_x);
    _mav_put_int16_t(buf, 36, image_pix_y);
    _mav_put_int16_t(buf, 38, image_ang_x);
    _mav_put_int16_t(buf, 40, image_ang_y);
    _mav_put_uint8_t(buf, 42, status1);
    _mav_put_uint8_t(buf, 43, status2);
    _mav_put_uint8_t(buf, 44, status3);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#else
    mavlink_uav_attack_control_tofc_t packet;
    packet.time_unix_usec = time_unix_usec;
    packet.rcv1 = rcv1;
    packet.rcv2 = rcv2;
    packet.rcv3 = rcv3;
    packet.frame_id = frame_id;
    packet.pod_roll_cd = pod_roll_cd;
    packet.pod_pitch_cd = pod_pitch_cd;
    packet.pod_yaw_cd = pod_yaw_cd;
    packet.pod_rollrate_cd = pod_rollrate_cd;
    packet.pod_pitchrate_cd = pod_pitchrate_cd;
    packet.pod_yawrate_cd = pod_yawrate_cd;
    packet.image_pix_x = image_pix_x;
    packet.image_pix_y = image_pix_y;
    packet.image_ang_x = image_ang_x;
    packet.image_ang_y = image_ang_y;
    packet.status1 = status1;
    packet.status2 = status2;
    packet.status3 = status3;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC;
#if MAVLINK_CRC_EXTRA
    return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#else
    return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#endif
}

/**
 * @brief Pack a uav_attack_control_tofc message on a channel
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param time_unix_usec [us] Timestamp (UNIX epoch time).
 * @param frame_id  Frame ID (incremental counter for packet loss detection).
 * @param status1  Algorithm status 1
 * @param status2  Algorithm status 2
 * @param status3  Algorithm status 3
 * @param pod_roll_cd [cdeg] Pod roll angle (deg*100, -18000~18000)
 * @param pod_pitch_cd [cdeg] Pod pitch angle (deg*100, -18000~18000)
 * @param pod_yaw_cd [cdeg] Pod yaw angle (deg*100, -18000~18000)
 * @param pod_rollrate_cd [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)
 * @param pod_pitchrate_cd [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)
 * @param pod_yawrate_cd [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)
 * @param image_pix_x [px] Image horizontal pixel offset (center=0,0)
 * @param image_pix_y [px] Image vertical pixel offset (center=0,0)
 * @param image_ang_x [cdeg] Image horizontal angle offset (deg*100, -18000~18000)
 * @param image_ang_y [cdeg] Image vertical angle offset (deg*100, -18000~18000)
 * @param rcv1  Reserved field 1
 * @param rcv2  Reserved field 2
 * @param rcv3  Reserved field 3
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                               mavlink_message_t* msg,
                                   uint64_t time_unix_usec,uint16_t frame_id,uint8_t status1,uint8_t status2,uint8_t status3,int16_t pod_roll_cd,int16_t pod_pitch_cd,int16_t pod_yaw_cd,int16_t pod_rollrate_cd,int16_t pod_pitchrate_cd,int16_t pod_yawrate_cd,int16_t image_pix_x,int16_t image_pix_y,int16_t image_ang_x,int16_t image_ang_y,float rcv1,float rcv2,float rcv3)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN];
    _mav_put_uint64_t(buf, 0, time_unix_usec);
    _mav_put_float(buf, 8, rcv1);
    _mav_put_float(buf, 12, rcv2);
    _mav_put_float(buf, 16, rcv3);
    _mav_put_uint16_t(buf, 20, frame_id);
    _mav_put_int16_t(buf, 22, pod_roll_cd);
    _mav_put_int16_t(buf, 24, pod_pitch_cd);
    _mav_put_int16_t(buf, 26, pod_yaw_cd);
    _mav_put_int16_t(buf, 28, pod_rollrate_cd);
    _mav_put_int16_t(buf, 30, pod_pitchrate_cd);
    _mav_put_int16_t(buf, 32, pod_yawrate_cd);
    _mav_put_int16_t(buf, 34, image_pix_x);
    _mav_put_int16_t(buf, 36, image_pix_y);
    _mav_put_int16_t(buf, 38, image_ang_x);
    _mav_put_int16_t(buf, 40, image_ang_y);
    _mav_put_uint8_t(buf, 42, status1);
    _mav_put_uint8_t(buf, 43, status2);
    _mav_put_uint8_t(buf, 44, status3);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#else
    mavlink_uav_attack_control_tofc_t packet;
    packet.time_unix_usec = time_unix_usec;
    packet.rcv1 = rcv1;
    packet.rcv2 = rcv2;
    packet.rcv3 = rcv3;
    packet.frame_id = frame_id;
    packet.pod_roll_cd = pod_roll_cd;
    packet.pod_pitch_cd = pod_pitch_cd;
    packet.pod_yaw_cd = pod_yaw_cd;
    packet.pod_rollrate_cd = pod_rollrate_cd;
    packet.pod_pitchrate_cd = pod_pitchrate_cd;
    packet.pod_yawrate_cd = pod_yawrate_cd;
    packet.image_pix_x = image_pix_x;
    packet.image_pix_y = image_pix_y;
    packet.image_ang_x = image_ang_x;
    packet.image_ang_y = image_ang_y;
    packet.status1 = status1;
    packet.status2 = status2;
    packet.status3 = status3;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC;
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
}

/**
 * @brief Encode a uav_attack_control_tofc struct
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 * @param uav_attack_control_tofc C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_uav_attack_control_tofc_t* uav_attack_control_tofc)
{
    return mavlink_msg_uav_attack_control_tofc_pack(system_id, component_id, msg, uav_attack_control_tofc->time_unix_usec, uav_attack_control_tofc->frame_id, uav_attack_control_tofc->status1, uav_attack_control_tofc->status2, uav_attack_control_tofc->status3, uav_attack_control_tofc->pod_roll_cd, uav_attack_control_tofc->pod_pitch_cd, uav_attack_control_tofc->pod_yaw_cd, uav_attack_control_tofc->pod_rollrate_cd, uav_attack_control_tofc->pod_pitchrate_cd, uav_attack_control_tofc->pod_yawrate_cd, uav_attack_control_tofc->image_pix_x, uav_attack_control_tofc->image_pix_y, uav_attack_control_tofc->image_ang_x, uav_attack_control_tofc->image_ang_y, uav_attack_control_tofc->rcv1, uav_attack_control_tofc->rcv2, uav_attack_control_tofc->rcv3);
}

/**
 * @brief Encode a uav_attack_control_tofc struct on a channel
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param uav_attack_control_tofc C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_uav_attack_control_tofc_t* uav_attack_control_tofc)
{
    return mavlink_msg_uav_attack_control_tofc_pack_chan(system_id, component_id, chan, msg, uav_attack_control_tofc->time_unix_usec, uav_attack_control_tofc->frame_id, uav_attack_control_tofc->status1, uav_attack_control_tofc->status2, uav_attack_control_tofc->status3, uav_attack_control_tofc->pod_roll_cd, uav_attack_control_tofc->pod_pitch_cd, uav_attack_control_tofc->pod_yaw_cd, uav_attack_control_tofc->pod_rollrate_cd, uav_attack_control_tofc->pod_pitchrate_cd, uav_attack_control_tofc->pod_yawrate_cd, uav_attack_control_tofc->image_pix_x, uav_attack_control_tofc->image_pix_y, uav_attack_control_tofc->image_ang_x, uav_attack_control_tofc->image_ang_y, uav_attack_control_tofc->rcv1, uav_attack_control_tofc->rcv2, uav_attack_control_tofc->rcv3);
}

/**
 * @brief Encode a uav_attack_control_tofc struct with provided status structure
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param status MAVLink status structure
 * @param msg The MAVLink message to compress the data into
 * @param uav_attack_control_tofc C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_uav_attack_control_tofc_t* uav_attack_control_tofc)
{
    return mavlink_msg_uav_attack_control_tofc_pack_status(system_id, component_id, _status, msg,  uav_attack_control_tofc->time_unix_usec, uav_attack_control_tofc->frame_id, uav_attack_control_tofc->status1, uav_attack_control_tofc->status2, uav_attack_control_tofc->status3, uav_attack_control_tofc->pod_roll_cd, uav_attack_control_tofc->pod_pitch_cd, uav_attack_control_tofc->pod_yaw_cd, uav_attack_control_tofc->pod_rollrate_cd, uav_attack_control_tofc->pod_pitchrate_cd, uav_attack_control_tofc->pod_yawrate_cd, uav_attack_control_tofc->image_pix_x, uav_attack_control_tofc->image_pix_y, uav_attack_control_tofc->image_ang_x, uav_attack_control_tofc->image_ang_y, uav_attack_control_tofc->rcv1, uav_attack_control_tofc->rcv2, uav_attack_control_tofc->rcv3);
}

/**
 * @brief Send a uav_attack_control_tofc message
 * @param chan MAVLink channel to send the message
 *
 * @param time_unix_usec [us] Timestamp (UNIX epoch time).
 * @param frame_id  Frame ID (incremental counter for packet loss detection).
 * @param status1  Algorithm status 1
 * @param status2  Algorithm status 2
 * @param status3  Algorithm status 3
 * @param pod_roll_cd [cdeg] Pod roll angle (deg*100, -18000~18000)
 * @param pod_pitch_cd [cdeg] Pod pitch angle (deg*100, -18000~18000)
 * @param pod_yaw_cd [cdeg] Pod yaw angle (deg*100, -18000~18000)
 * @param pod_rollrate_cd [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)
 * @param pod_pitchrate_cd [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)
 * @param pod_yawrate_cd [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)
 * @param image_pix_x [px] Image horizontal pixel offset (center=0,0)
 * @param image_pix_y [px] Image vertical pixel offset (center=0,0)
 * @param image_ang_x [cdeg] Image horizontal angle offset (deg*100, -18000~18000)
 * @param image_ang_y [cdeg] Image vertical angle offset (deg*100, -18000~18000)
 * @param rcv1  Reserved field 1
 * @param rcv2  Reserved field 2
 * @param rcv3  Reserved field 3
 */
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

static inline void mavlink_msg_uav_attack_control_tofc_send(mavlink_channel_t chan, uint64_t time_unix_usec, uint16_t frame_id, uint8_t status1, uint8_t status2, uint8_t status3, int16_t pod_roll_cd, int16_t pod_pitch_cd, int16_t pod_yaw_cd, int16_t pod_rollrate_cd, int16_t pod_pitchrate_cd, int16_t pod_yawrate_cd, int16_t image_pix_x, int16_t image_pix_y, int16_t image_ang_x, int16_t image_ang_y, float rcv1, float rcv2, float rcv3)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN];
    _mav_put_uint64_t(buf, 0, time_unix_usec);
    _mav_put_float(buf, 8, rcv1);
    _mav_put_float(buf, 12, rcv2);
    _mav_put_float(buf, 16, rcv3);
    _mav_put_uint16_t(buf, 20, frame_id);
    _mav_put_int16_t(buf, 22, pod_roll_cd);
    _mav_put_int16_t(buf, 24, pod_pitch_cd);
    _mav_put_int16_t(buf, 26, pod_yaw_cd);
    _mav_put_int16_t(buf, 28, pod_rollrate_cd);
    _mav_put_int16_t(buf, 30, pod_pitchrate_cd);
    _mav_put_int16_t(buf, 32, pod_yawrate_cd);
    _mav_put_int16_t(buf, 34, image_pix_x);
    _mav_put_int16_t(buf, 36, image_pix_y);
    _mav_put_int16_t(buf, 38, image_ang_x);
    _mav_put_int16_t(buf, 40, image_ang_y);
    _mav_put_uint8_t(buf, 42, status1);
    _mav_put_uint8_t(buf, 43, status2);
    _mav_put_uint8_t(buf, 44, status3);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC, buf, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#else
    mavlink_uav_attack_control_tofc_t packet;
    packet.time_unix_usec = time_unix_usec;
    packet.rcv1 = rcv1;
    packet.rcv2 = rcv2;
    packet.rcv3 = rcv3;
    packet.frame_id = frame_id;
    packet.pod_roll_cd = pod_roll_cd;
    packet.pod_pitch_cd = pod_pitch_cd;
    packet.pod_yaw_cd = pod_yaw_cd;
    packet.pod_rollrate_cd = pod_rollrate_cd;
    packet.pod_pitchrate_cd = pod_pitchrate_cd;
    packet.pod_yawrate_cd = pod_yawrate_cd;
    packet.image_pix_x = image_pix_x;
    packet.image_pix_y = image_pix_y;
    packet.image_ang_x = image_ang_x;
    packet.image_ang_y = image_ang_y;
    packet.status1 = status1;
    packet.status2 = status2;
    packet.status3 = status3;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC, (const char *)&packet, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#endif
}

/**
 * @brief Send a uav_attack_control_tofc message
 * @param chan MAVLink channel to send the message
 * @param struct The MAVLink struct to serialize
 */
static inline void mavlink_msg_uav_attack_control_tofc_send_struct(mavlink_channel_t chan, const mavlink_uav_attack_control_tofc_t* uav_attack_control_tofc)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    mavlink_msg_uav_attack_control_tofc_send(chan, uav_attack_control_tofc->time_unix_usec, uav_attack_control_tofc->frame_id, uav_attack_control_tofc->status1, uav_attack_control_tofc->status2, uav_attack_control_tofc->status3, uav_attack_control_tofc->pod_roll_cd, uav_attack_control_tofc->pod_pitch_cd, uav_attack_control_tofc->pod_yaw_cd, uav_attack_control_tofc->pod_rollrate_cd, uav_attack_control_tofc->pod_pitchrate_cd, uav_attack_control_tofc->pod_yawrate_cd, uav_attack_control_tofc->image_pix_x, uav_attack_control_tofc->image_pix_y, uav_attack_control_tofc->image_ang_x, uav_attack_control_tofc->image_ang_y, uav_attack_control_tofc->rcv1, uav_attack_control_tofc->rcv2, uav_attack_control_tofc->rcv3);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC, (const char *)uav_attack_control_tofc, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#endif
}

#if MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
  This variant of _send() can be used to save stack space by re-using
  memory from the receive buffer.  The caller provides a
  mavlink_message_t which is the size of a full mavlink message. This
  is usually the receive buffer for the channel, and allows a reply to an
  incoming message with minimum stack space usage.
 */
static inline void mavlink_msg_uav_attack_control_tofc_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  uint64_t time_unix_usec, uint16_t frame_id, uint8_t status1, uint8_t status2, uint8_t status3, int16_t pod_roll_cd, int16_t pod_pitch_cd, int16_t pod_yaw_cd, int16_t pod_rollrate_cd, int16_t pod_pitchrate_cd, int16_t pod_yawrate_cd, int16_t image_pix_x, int16_t image_pix_y, int16_t image_ang_x, int16_t image_ang_y, float rcv1, float rcv2, float rcv3)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char *buf = (char *)msgbuf;
    _mav_put_uint64_t(buf, 0, time_unix_usec);
    _mav_put_float(buf, 8, rcv1);
    _mav_put_float(buf, 12, rcv2);
    _mav_put_float(buf, 16, rcv3);
    _mav_put_uint16_t(buf, 20, frame_id);
    _mav_put_int16_t(buf, 22, pod_roll_cd);
    _mav_put_int16_t(buf, 24, pod_pitch_cd);
    _mav_put_int16_t(buf, 26, pod_yaw_cd);
    _mav_put_int16_t(buf, 28, pod_rollrate_cd);
    _mav_put_int16_t(buf, 30, pod_pitchrate_cd);
    _mav_put_int16_t(buf, 32, pod_yawrate_cd);
    _mav_put_int16_t(buf, 34, image_pix_x);
    _mav_put_int16_t(buf, 36, image_pix_y);
    _mav_put_int16_t(buf, 38, image_ang_x);
    _mav_put_int16_t(buf, 40, image_ang_y);
    _mav_put_uint8_t(buf, 42, status1);
    _mav_put_uint8_t(buf, 43, status2);
    _mav_put_uint8_t(buf, 44, status3);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC, buf, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#else
    mavlink_uav_attack_control_tofc_t *packet = (mavlink_uav_attack_control_tofc_t *)msgbuf;
    packet->time_unix_usec = time_unix_usec;
    packet->rcv1 = rcv1;
    packet->rcv2 = rcv2;
    packet->rcv3 = rcv3;
    packet->frame_id = frame_id;
    packet->pod_roll_cd = pod_roll_cd;
    packet->pod_pitch_cd = pod_pitch_cd;
    packet->pod_yaw_cd = pod_yaw_cd;
    packet->pod_rollrate_cd = pod_rollrate_cd;
    packet->pod_pitchrate_cd = pod_pitchrate_cd;
    packet->pod_yawrate_cd = pod_yawrate_cd;
    packet->image_pix_x = image_pix_x;
    packet->image_pix_y = image_pix_y;
    packet->image_ang_x = image_ang_x;
    packet->image_ang_y = image_ang_y;
    packet->status1 = status1;
    packet->status2 = status2;
    packet->status3 = status3;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC, (const char *)packet, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_MIN_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_CRC);
#endif
}
#endif

#endif

// MESSAGE UAV_ATTACK_CONTROL_TOFC UNPACKING


/**
 * @brief Get field time_unix_usec from uav_attack_control_tofc message
 *
 * @return [us] Timestamp (UNIX epoch time).
 */
static inline uint64_t mavlink_msg_uav_attack_control_tofc_get_time_unix_usec(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint64_t(msg,  0);
}

/**
 * @brief Get field frame_id from uav_attack_control_tofc message
 *
 * @return  Frame ID (incremental counter for packet loss detection).
 */
static inline uint16_t mavlink_msg_uav_attack_control_tofc_get_frame_id(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint16_t(msg,  20);
}

/**
 * @brief Get field status1 from uav_attack_control_tofc message
 *
 * @return  Algorithm status 1
 */
static inline uint8_t mavlink_msg_uav_attack_control_tofc_get_status1(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  42);
}

/**
 * @brief Get field status2 from uav_attack_control_tofc message
 *
 * @return  Algorithm status 2
 */
static inline uint8_t mavlink_msg_uav_attack_control_tofc_get_status2(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  43);
}

/**
 * @brief Get field status3 from uav_attack_control_tofc message
 *
 * @return  Algorithm status 3
 */
static inline uint8_t mavlink_msg_uav_attack_control_tofc_get_status3(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  44);
}

/**
 * @brief Get field pod_roll_cd from uav_attack_control_tofc message
 *
 * @return [cdeg] Pod roll angle (deg*100, -18000~18000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_roll_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  22);
}

/**
 * @brief Get field pod_pitch_cd from uav_attack_control_tofc message
 *
 * @return [cdeg] Pod pitch angle (deg*100, -18000~18000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_pitch_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  24);
}

/**
 * @brief Get field pod_yaw_cd from uav_attack_control_tofc message
 *
 * @return [cdeg] Pod yaw angle (deg*100, -18000~18000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_yaw_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  26);
}

/**
 * @brief Get field pod_rollrate_cd from uav_attack_control_tofc message
 *
 * @return [cdeg/s] Pod roll rate (deg/s*100, -30000~30000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_rollrate_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  28);
}

/**
 * @brief Get field pod_pitchrate_cd from uav_attack_control_tofc message
 *
 * @return [cdeg/s] Pod pitch rate (deg/s*100, -30000~30000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_pitchrate_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  30);
}

/**
 * @brief Get field pod_yawrate_cd from uav_attack_control_tofc message
 *
 * @return [cdeg/s] Pod yaw rate (deg/s*100, -30000~30000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_pod_yawrate_cd(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  32);
}

/**
 * @brief Get field image_pix_x from uav_attack_control_tofc message
 *
 * @return [px] Image horizontal pixel offset (center=0,0)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_image_pix_x(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  34);
}

/**
 * @brief Get field image_pix_y from uav_attack_control_tofc message
 *
 * @return [px] Image vertical pixel offset (center=0,0)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_image_pix_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  36);
}

/**
 * @brief Get field image_ang_x from uav_attack_control_tofc message
 *
 * @return [cdeg] Image horizontal angle offset (deg*100, -18000~18000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_image_ang_x(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  38);
}

/**
 * @brief Get field image_ang_y from uav_attack_control_tofc message
 *
 * @return [cdeg] Image vertical angle offset (deg*100, -18000~18000)
 */
static inline int16_t mavlink_msg_uav_attack_control_tofc_get_image_ang_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int16_t(msg,  40);
}

/**
 * @brief Get field rcv1 from uav_attack_control_tofc message
 *
 * @return  Reserved field 1
 */
static inline float mavlink_msg_uav_attack_control_tofc_get_rcv1(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  8);
}

/**
 * @brief Get field rcv2 from uav_attack_control_tofc message
 *
 * @return  Reserved field 2
 */
static inline float mavlink_msg_uav_attack_control_tofc_get_rcv2(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  12);
}

/**
 * @brief Get field rcv3 from uav_attack_control_tofc message
 *
 * @return  Reserved field 3
 */
static inline float mavlink_msg_uav_attack_control_tofc_get_rcv3(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  16);
}

/**
 * @brief Decode a uav_attack_control_tofc message into a struct
 *
 * @param msg The message to decode
 * @param uav_attack_control_tofc C-struct to decode the message contents into
 */
static inline void mavlink_msg_uav_attack_control_tofc_decode(const mavlink_message_t* msg, mavlink_uav_attack_control_tofc_t* uav_attack_control_tofc)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    uav_attack_control_tofc->time_unix_usec = mavlink_msg_uav_attack_control_tofc_get_time_unix_usec(msg);
    uav_attack_control_tofc->rcv1 = mavlink_msg_uav_attack_control_tofc_get_rcv1(msg);
    uav_attack_control_tofc->rcv2 = mavlink_msg_uav_attack_control_tofc_get_rcv2(msg);
    uav_attack_control_tofc->rcv3 = mavlink_msg_uav_attack_control_tofc_get_rcv3(msg);
    uav_attack_control_tofc->frame_id = mavlink_msg_uav_attack_control_tofc_get_frame_id(msg);
    uav_attack_control_tofc->pod_roll_cd = mavlink_msg_uav_attack_control_tofc_get_pod_roll_cd(msg);
    uav_attack_control_tofc->pod_pitch_cd = mavlink_msg_uav_attack_control_tofc_get_pod_pitch_cd(msg);
    uav_attack_control_tofc->pod_yaw_cd = mavlink_msg_uav_attack_control_tofc_get_pod_yaw_cd(msg);
    uav_attack_control_tofc->pod_rollrate_cd = mavlink_msg_uav_attack_control_tofc_get_pod_rollrate_cd(msg);
    uav_attack_control_tofc->pod_pitchrate_cd = mavlink_msg_uav_attack_control_tofc_get_pod_pitchrate_cd(msg);
    uav_attack_control_tofc->pod_yawrate_cd = mavlink_msg_uav_attack_control_tofc_get_pod_yawrate_cd(msg);
    uav_attack_control_tofc->image_pix_x = mavlink_msg_uav_attack_control_tofc_get_image_pix_x(msg);
    uav_attack_control_tofc->image_pix_y = mavlink_msg_uav_attack_control_tofc_get_image_pix_y(msg);
    uav_attack_control_tofc->image_ang_x = mavlink_msg_uav_attack_control_tofc_get_image_ang_x(msg);
    uav_attack_control_tofc->image_ang_y = mavlink_msg_uav_attack_control_tofc_get_image_ang_y(msg);
    uav_attack_control_tofc->status1 = mavlink_msg_uav_attack_control_tofc_get_status1(msg);
    uav_attack_control_tofc->status2 = mavlink_msg_uav_attack_control_tofc_get_status2(msg);
    uav_attack_control_tofc->status3 = mavlink_msg_uav_attack_control_tofc_get_status3(msg);
#else
        uint8_t len = msg->len < MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN? msg->len : MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN;
        memset(uav_attack_control_tofc, 0, MAVLINK_MSG_ID_UAV_ATTACK_CONTROL_TOFC_LEN);
    memcpy(uav_attack_control_tofc, _MAV_PAYLOAD(msg), len);
#endif
}
